Formal Development of Safe and Secure Java Card Applets
نویسنده
چکیده
This thesis is concerned with formal development of JAVA CARD applets. JAVA CARD is a technology that provides a means to program smart cards with (a subset of) the JAVA language. In recent years JAVA CARD technology gained great interest in the formal verification community. There are two reasons for this. Due to the sensitive nature (e.g., security, maintenance costs) of JAVA CARD applets, formal verification for JAVA CARD is highly desired. Moreover, because of the relative simplicity of the programming language, JAVA CARD is also a feasible target for formal verification. The formal verification platform that we used in our research is the KeY system developed in the KeY Project. One of the main objectives of our research is to find out how far formal verification for industrial size JAVA CARD applets goes, in terms of usability, automation, and power (expressivity of constraints). Furthermore, we investigated practical and theoretical shortcomings of the verification techniques and development methods for JAVA CARD applets. As a result, we adapted a program logic for JAVA CARD to be able to express interesting, meaningful safety and security properties (strong invariants) and proposed design guidelines to support and ease formal verification (design for verification). We performed extensive practical experiments with the KeY system to justify and evaluate our work. Formal aspects of our research concentrate on source code level verification of JAVA CARD programs with interactive and automated theorem proving. Our work has been driven by certain assumptions, motivated by the KeY Project’s philosophy: (1) formal verification should be accessible to software engineers without years of training in formal methods, (2) we should be able to perform full verification whenever needed, i.e., we want to handle complex JAVA CARD applets that involve JAVA CARD specific features, like atomic transactions and object persistency, (3) the verified code should not be subjected to translations, simplifications, intermediate representations, etc., and finally, (4) the properties that we prove should relate to important safety and security issues in JAVA CARD development. We relate to these goals in our work.
منابع مشابه
Systematic Development of JAVA CARD Applets
We present an approach to systematic, toolsupported design and development of JAVA CARD applets. We employ the Unified Modeling Language (UML) and formal methods for object-oriented software development in our approach. Our goal is to make JAVA CARD applets robust “by design”, to make the development process independent of the JAVA CARD platform, and to enable applets to be verified formally by...
متن کاملTowards Development of Safe and Secure JAVACARD Applets
This thesis is concerned with different aspects of JAVACARD application development and use of formal methods in the JAVACARD world. JAVACARD is a technology that provides means to program smart (chip) cards with (a subset of) the JAVA language. The use of formal methods in the JAVACARD context is highly justified due to the criticality of JAVACARD applications. First of all, JAVACARD applicati...
متن کاملFormal Proof of Smart Card Applets Correctness
The new Gemplus smart card is based on the Java technology, embedding a virtual machine. The security policy uses mechanisms that are based on Java properties. This language provides segregation between applets. But due to the smart card constraints a byte code verifier can not be embedded. Moreover, in order to maximise the number of applets the byte code must be optimised. The security proper...
متن کاملSecure Object Flow Analysis for Java Card
The access control exercised by the Java Card firewall can be bypassed by the use of shareable objects. To help detecting unwanted access to objects, we propose a static analysis that calculates a safe approximation of the possible flow of objects between Java Card applets. The analysis deals with a subset of the Java Card bytecode focusing on aspects of the Java Card firewall, method invocatio...
متن کاملFrom Finite State Machines to Provably Correct Java Card Applets
This paper presents a systematic approach to developing Java Card applets and/or formal specifications for them, starting from descriptions in the form of finite state machines. The formal specifications are written in the specification language JML, and can be checked against Java Card source code using the static checker ESC/Java.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005